<?php

class RL_Utils_String
{
	
	/**
	 * Строка, с которой работаем
	 *
	 * @var string
	 */
	private $string;
	
	/**
	 * Флажок, показывающий, что mbstring можно использовать
	 *
	 * @var bool
	 */
	private static $mbstring_loaded = null;
	
	/**
	 * Создает объект-строку
	 *
	 * @param string $string
	 * @return RL_String
	 */
	public function __construct( $string )
	{
		if(self::$mbstring_loaded == null) {
			self::$mbstring_loaded = extension_loaded("mbstring");
		}
		
		$this->string = $string;
	}
	
	/**
	 * Преобразует строку к нижнему регистру
	 *
	 * @return RL_String
	 */
	public function toLower()
	{
		$this->string = self::$mbstring_loaded ? mb_strtolower( $this->string ) : strtolower( $this->string );
		
		return $this;
	}
	
	/**
	 * Служебная функция
	 *
	 * @return string
	 */
	public function __toString()
	{
		return $this->string;
	}
}
?>
